package com.xwtec.strategy;

/**
 * @Author: zt
 * @Date: 2021/2/21 14:49
 * <p>
 * 选择排序   {3,5,1,19,21,-15,-27}
 *  理解：第一轮，选择数组的第一位数字，然后挨个和后面的数组进行比较，选择出最小数的下表  {-27,5,1,19,21,-15,3}
 *        第二轮：{-27,-15,1,19,21,5,3}
 *        第三轮：{-27,-15,1,19,21,5,3} 解释，1后面的数都比1大，所以1和1自己换
 *        第四轮：{-27,-15,1,3,21,5,19}
 *        第五轮：{-27,-15,1,3,5,21,19}
 *        第六轮：{-27,-15,1,3,5,19,21}
 *        结束
 */
public class SorterExm {

    public static void sort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            int minPos = i;

            for (int j = i + 1; j < arr.length; j++) {

                minPos = arr[j] < arr[minPos] ? j : minPos;
            }
            swap(arr, i, minPos);
        }
    }

    static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}
